179. 最大数
179. 最大数
Similar Question
Solution Tips
方案一: 富途一面实现方案 , 贪心思想
我当时是认为从最高位开始逐位比较, 大的排序靠前. 如果较短则填充为最后一个字符. 比如: 30 和 3 比较, 实际上是 30 和 33 比较. 所以 3 比 30 更大. 330 是符合预期的结果
实际上我就是实现了一个 2 个数之间的 isBigger
但是我面试的时候, 收到了公共前缀、合并 k 个链表的影响, 老是往归并排序去想, 但是我自己根本不敢写归并排序, 导致每次都是逐个与 res 比较.
其实 isBigger 可以直接作为排序函数的 sorter 来使用. 利用原生的排序函数, 和我自己手写排序函数复杂度是一样的.
var largestNumber = function(nums) {
nums.sort((x, y) => {
let sx = 10, sy = 10;
while (sx <= x) {
sx *= 10;
}
while (sy <= y) {
sy *= 10;
}
return '' + (sx * y + x) - ('' + (sy * x + y));
})
if (nums[0] === 0) {
return '0';
}
return nums.join('');
};